import request from './request';
import qs from 'qs';

// 获取编号规则列表
export function getSerialNumberList(params) {
    return request({
        url: '/sysNumber/getSysNumberPage',
        method: 'get',
        params  // GET 参数用 params
    })
}

// 获取编号规则详情
export function getSerialNumberDetail(id) {
    return request.get(`/api/serial-number/${id}`)
}

// 创建编号规则
export function createSerialNumber(data) {
    return request({
        url: '/sysNumber/add',
        method: 'post',
        data: qs.stringify(data),
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    })
}

// 更新编号规则
export function updateSerialNumber(id, data) {
    return request.put(`/api/serial-number/${id}`, data)
}

// 删除编号规则
export function deleteSerialNumber(id) {
    return request.delete(`/api/serial-number/${id}`)
}

// 批量删除编号规则
export function batchDeleteSerialNumber(ids) {
    return request.delete('/api/serial-number/batch', { ids })
}

// 获取下一个编号
export function getNextNumber(ruleCode) {
    return request.get(`/api/serial-number/next/${ruleCode}`)
}

// 重置编号规则
export function resetSerialNumber(id) {
    return request.post(`/api/serial-number/reset/${id}`)
}

// 预览编号规则
export function previewSerialNumber(data) {
    return request.post('/api/serial-number/preview', data)
}

// 获取编号类型
export function getSerialNumberTypes() {
    return request.get('/api/serial-number/types')
}

// 导出编号规则
export function exportSerialNumber(params) {
    return request.get('/api/serial-number/export', params, { responseType: 'blob' })
}

// 导入编号规则
export function importSerialNumber(data) {
    return request.post('/api/serial-number/import', data, {
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    })
}